var a = 100

function foo() {
  console.log(a)
  return
  var a = 100
}

foo()

//undefined

//注意:编译的时候不管有没有return，都会扫描完，声明的变量都被放进variable environment，成为一个environment record
//return只在执行的时候会起作用，对上面来说就是a只是undefined，不会更新variable environment
